home *** CD-ROM | disk | FTP | other *** search
- /***********************************************************************
- * This is an example that shows how to open a p96 PIP Window
- * to get input events and how to paint in that window.
- *
- * converted by Martin <MarK> Kuchinka, 13.9.2001
- ***********************************************************************/
-
- MODULE 'picasso96','libraries/picasso96'
- MODULE 'graphics/rastport','intuition/intuition'
-
- DEF P96Base
-
- PROC main()
- IF P96Base:=OpenLibrary(P96NAME,2)
- DEF wd:PTR TO Window
-
- DEFL width = 256,
- height = 256
- DEF pubscreenname = 'Workbench'
-
- DEF ra,array=[0,0,pubscreenname]:L
- IF ra:=ReadArgs('Width=W/N,Height=H/N,Pubscreen=PS/K',array,NIL)
- IF array[0] THEN width :=^array[0]
- IF array[1] THEN height:=^array[1]
- pubscreenname:=array[2]
- FreeArgs(ra)
- ENDIF
-
- IF wd:=p96PIP_OpenTags(
- P96PIP_SourceFormat, RGBFB_R5G5B5, // RGBFB_Y4U2V2,
- P96PIP_SourceWidth, 256,
- P96PIP_SourceHeight, 256,
-
- /* these tags are optional, but help */
- WA_Title, 'Picasso96 API PIP Test',
- WA_Activate, TRUE,
- WA_RMBTrap, TRUE,
- WA_Width, width,
- WA_Height, height,
- WA_DragBar, TRUE,
- WA_DepthGadget, TRUE,
- WA_SimpleRefresh, TRUE,
- WA_SizeGadget, TRUE,
- WA_CloseGadget, TRUE,
- WA_IDCMP, IDCMP_CLOSEWINDOW,
- WA_PubScreenName, pubscreenname,
- TAG_DONE)
-
- DEF imsg:PTR TO IntuiMessage
- DEF goahead=TRUE
- DEF rp=NIL:PTR TO RastPort
-
- p96PIP_GetTags(wd, P96PIP_SourceRPort, &rp, TAG_END)
-
- IF rp
- DEFUW x,y
-
- FOR y:=0 TO height-1
- FOR x:=0 TO width-1
- p96WritePixel(rp, x, y, (x*256+y)*256)
- ENDFOR
- ENDFOR
- ENDIF
-
- REPEAT
- WaitPort(wd.UserPort)
- WHILE imsg:=GetMsg(wd.UserPort)
-
- SELECT imsg.Class
- CASE IDCMP_CLOSEWINDOW goahead:=FALSE
- ENDSELECT
-
- ReplyMsg(imsg)
- ENDWHILE
- UNTILN goahead
-
- p96PIP_Close(wd)
- ELSE PrintF('Can''t open window.\n')
-
- CloseLibrary(P96Base)
- ELSE PrintF('Can''t open picasso96api.library v2+.\n')
- ENDPROC
-